/*
 * interface_apresentacao.h
 *
 *  Created on: 12/11/2012
 */



/* Controle visando evitar inclusoes multiplas.*/
#ifndef MOD_APRESENTACAO
#define MOD_APRESENTACAO



/* Controle visando identificar o servidor.*/
#ifdef SERVIDOR_APRESENTACAO
#define EXT_MOD_APRESENTACAO
#else
#define EXT_MOD_APRESENTACAO extern
#endif


#include <stdbool.h>


typedef struct usuario
{
	char nome_de_usuario[11];
	char senha[7];
	int identificador;
	struct usuario *prox;
} Usuario;

typedef struct postagem
{
	int identificador_postagem, identificador_autor, num_avaliacoes;
	float media_avaliacoes;
	char texto_postagem[31], data[11];
	struct postagem *prox;
} Postagem;

typedef struct comentario
{
	int identificador_postagem, identificador_comentario, identificador_autor;
	char texto_comentario[21], data[11];
	struct comentario *prox;
} Comentario;


/* Declaracoes dos prototipos das funcoes.*/
EXT_MOD_APRESENTACAO char executar();
EXT_MOD_APRESENTACAO char executalogin();
EXT_MOD_APRESENTACAO int cadastrar_usuario(char nome_de_usuario[11], char senha[7], int identificador);
EXT_MOD_APRESENTACAO int autenticar_usuario(char nome_de_usuario[11], char senha[7]);
EXT_MOD_APRESENTACAO int alterar_cadastro(char nome_de_usuario[11], char senha[7], char novo_nome_de_usuario[11], char nova_senha[7]);
EXT_MOD_APRESENTACAO int encerrar_cadastro(char nome_de_usuario[11], char senha[7]);
EXT_MOD_APRESENTACAO int listar_usuarios();

EXT_MOD_APRESENTACAO int cadastrar_postagem(char texto_postagem[31], int identificador_postagem, bool comentavel, int identificador_autor, char data[11]);
EXT_MOD_APRESENTACAO int cadastrar_comentario(char texto_comentario[21], int identificador_comentario, int identificador_postagem, int identificador_autor, char data[11]);
EXT_MOD_APRESENTACAO int remover_postagem(int identificador_postagem, int identificador_autor);
EXT_MOD_APRESENTACAO int remover_comentario(int identificador_comentario, int identificador_autor);
EXT_MOD_APRESENTACAO int remover_postagens_usuario(int identificador_autor);
EXT_MOD_APRESENTACAO int remover_comentarios_usuario(int identificador_autor);
EXT_MOD_APRESENTACAO int busca_postagem(int identificador_autor);
EXT_MOD_APRESENTACAO int busca_comentario(int identificador_autor);
EXT_MOD_APRESENTACAO int avaliar_postagem(int identificador_postagem, float avaliacao);
EXT_MOD_APRESENTACAO int listar_postagens();
EXT_MOD_APRESENTACAO int listar_comentarios(int identificador_postagem);




#endif

